package Procesador;

import java.util.ArrayList;

public class TipoTupla implements Tipo {
	
	private String id;
	private ArrayList<Tipo> campos;
	private String mensaje;
	
	public TipoTupla(String id){
		this.id = id;
		this.campos = new ArrayList<Tipo>();
	}
	
	public TipoTupla(String id,String mensaje){
		this.id = id;
		this.mensaje = mensaje;
		this.campos = new ArrayList<Tipo>();
	}
	
	public TipoTupla(String id,ArrayList<Tipo> campos){
		this.id = id;
		this.campos = campos;
	}
	
	public String getID(){
		return id;
	}
	
	public Tipo getCampo(int i){
		return campos.get(i);
	}
	
	public int getTam(){
		int x = 0;
		for(int i=0;i<campos.size();i++){
			x = x + campos.get(i).getTam();
		}
		return x;
	}
	
	public int getDesp(int campo){
		int desp = 0;
		for(int i=0;i<campo;i++){
			desp = desp + getCampo(i).getTam();
		}
		return desp;
	}
	
	public int getNumCampos(){
		return campos.size();
	}
	
	public String getMensaje(){
		return mensaje;
	}
	
	public boolean equals(Object obj){
		if (this == obj)return true;
		if (this == null) return obj==null;
		if (!(obj instanceof TipoTupla)) return false;
		TipoTupla t = (TipoTupla)obj;
		return this.id.equals(t.getID()) && this.campos.equals(t.campos);
	}
}
